Tầm biểu diễn của các số dấu phẩy động Số thực dấu phẩy động

Bằng cách cho phép vị trí của dấu phẩy cơ số điều chỉnh được, cách biểu diễn dấu phẩy động giúp người sử dụng thực hiện các phép toán trên một tầm rộng về biên độ ứng với một số cố định chữ số mà vẫn duy trì được độ chính xác tốt. Ví dụ, trong hệ thống dấu phẩy động thập phân có phần định trị là ba chữ số và phần mũ là một chữ số (tổng cộng tài nguyên hiển thị cho một con số là 4 chữ số), phép nhân mà con người chúng ta thường viết

0.12 × 0.12 = 0.0144

sẽ được mô tả ở dạng dấu phẩy động như sau:

(1.20×10−1) × (1.20×10−1) = (1.44×10−2).

Nếu thực hiện phép nhân nói trên trong một hệ thống dấu phẩy tĩnh có tài nguyên hiển thị là 4 chữ số với quy ước dấu phẩy thập phân luôn ở phía sau chữ số đầu tiên bên trái thì kết quả sẽ là

0.120 × 0.120 = 0.014.

Rõ ràng một chữ số của kết quả sẽ bị mất đi do chỉ có 4 chữ số để hiển thị và quan trọng hơn là dấu phẩy thập phân không linh hoạt, bị quy ước cố định trong dãy chữ số. Tầm hiển thị của số dấu phẩy động phụ thuộc vào số bit hay số chữ số của phần định trị và của phần số mũ. Trên hệ thống máy tính thông thường, một số dấu phẩy động nhị phân định dạng ‘độ chính xác kép’ (64 bit) có phần định trị 52 bit (thực ra là 53 bit vì trong đó có một bit 1 luôn luôn có nhưng không thể hiện tường minh, điều này cũng giống định dạng độ chính xác đơn đã trình bày ở trên), phần số mũ gồm 11 bit và 1 bit dấu. Tầm số dương mà định dạng này có thể biểu diễn được là khoảng từ 10−308 đến 10308 (vì 308 xấp xỉ bằng 1023 × log10(2) và tầm số mũ của định dạng độ chính xác kép là [−1023,1024]). Toàn tầm hiển thị của định dạng độ chính xác kép là khoảng từ −10308 đến +10308 (xem IEEE754).

Một hệ thống số dấu phẩy động F(b, p, l, u) (ở đây b là cơ số của hệ thống, p là độ chính xác của hệ thống – tức là số chữ số có trong phần định trị kể cả bit không hiển thị tường minh nhưng ngầm hiểu, l và u lần lượt là số mũ nhỏ nhất và lớn nhất mà hệ thống có thể biểu diễn được) có thể biểu diễn được một số lượng các con số chuẩn hóa theo công thức sau:

2* (b-1) * b ^ (p-1) * (u – l + 1)

Có một số dương nhỏ nhất trong các số dấu phẩy động chuẩn hóa và được gọi là mức tràn dưới (underflow level) = UFL = b^l. UFL có bit 1 (không hiển thị tường minh và hiểu ngầm) ở vị trí trước dấu chấm cơ số của phần định trị, các bit còn lại của phần định trị bằng 0 và phần mũ có giá trị nhỏ nhất.

Có một số dương lớn nhất trong các số dấu phẩy động chuẩn hóa và được gọi là mức tràn trên (overflow level) = OFL = b^(u+1) * (1-b^(-p)). OFL có giá trị mỗi chữ số ở phần định trị đều bằng (b-1) và phần mũ có giá trị lớn nhất.

Hơn nữa, còn có những giá trị mà hệ thống dấu phẩy động có thể biểu diễn được. Đó là một số giá trị nằm giữa –UFL và UFL. Các số này là zero, zero âm, cũng như các số không chuẩn hóa.